#define _CRT_SECURE_NO_WARNINGS


//#include<bits/stdc++.h>
//using namespace std;
//typedef long long ll;
//bool check[505] = {0};
//vector<vector<int>> arr;
//vector<int> path;
//int n,k;
//void dfs()
//{
//	if (path.size() == n)
//	{
//		arr.push_back(path);
//		return;
//	}
//	for (int i = 1; i <= n; i++)
//	{
//		if (!check[i])
//		{
//			path.push_back(i);
//			check[i] = true;
//			dfs();
//			path.pop_back();
//			check[i] = false;
//		}
//	}
//}
//int solve(vector<int>&v)
//{
//	if (v.size() <= 2) return 0;
//	int ret = 0;
//	for (int i = 1; i <= n - 2; i++)
//	{
//		if ((v[i] >= v[i - 1] && v[i] >= v[i + 1]) || (v[i] <= v[i - 1] && v[i] <= v[i + 1]))
//		{
//			ret++;
//		}
//	}
//	return ret;
//
//}
//int main()
//{
//	ll ret = 0;
//	cin >> n >> k;
//	dfs();
//	for (auto& ch : arr)
//	{
//		if (solve(ch) == k - 1)
//		{
//			ret++;
//			ret = ret % 123456;
//		}
//	}
//	cout << ret;
//	return 0;
//}